Source:NetHack 3.4.0/winprocs.h
Below is the full text to winprocs.h from the source code of NetHack 3.4.0. To link to a particular line, write [[NetHack 3.4.0/winprocs.h#line123]], for example. Warning! This is the source code from an old release. For the latest release, see Source code 1. /* SCCS Id: @(#)winprocs.h 3.4 1996/02/18 */ 2. /* Copyright © David Cohrs, 1992 */ 3. /* NetHack may be freely redistributed. See license for details. */ 4. 5. #ifndef WINPROCS_H 6. #define WINPROCS_H 7. 8. struct window_procs { 9. const char *name; 10. unsigned long wincap; /* window port capability options supported */ 11. void FDECL((*win_init_nhwindows), (int *, char **)); 12. void NDECL((*win_player_selection)); 13. void NDECL((*win_askname)); 14. void NDECL((*win_get_nh_event)) ; 15. void FDECL((*win_exit_nhwindows), (const char *)); 16. void FDECL((*win_suspend_nhwindows), (const char *)); 17. void NDECL((*win_resume_nhwindows)); 18. winid FDECL((*win_create_nhwindow), (int)); 19. void FDECL((*win_clear_nhwindow), (winid)); 20. void FDECL((*win_display_nhwindow), (winid, BOOLEAN_P)); 21. void FDECL((*win_destroy_nhwindow), (winid)); 22. void FDECL((*win_curs), (winid,int,int)); 23. void FDECL((*win_putstr), (winid, int, const char *)); 24. void FDECL((*win_display_file), (const char *, BOOLEAN_P)); 25. void FDECL((*win_start_menu), (winid)); 26. void FDECL((*win_add_menu), (winid,int,const ANY_P *, 27. CHAR_P,CHAR_P,int,const char *, BOOLEAN_P)); 28. void FDECL((*win_end_menu), (winid, const char *)); 29. int FDECL((*win_select_menu), (winid, int, MENU_ITEM_P **)); 30. char FDECL((*win_message_menu), (CHAR_P,int,const char *)); 31. void NDECL((*win_update_inventory)); 32. void NDECL((*win_mark_synch)); 33. void NDECL((*win_wait_synch)); 34. #ifdef CLIPPING 35. void FDECL((*win_cliparound), (int, int)); 36. #endif 37. #ifdef POSITIONBAR 38. void FDECL((*win_update_positionbar), (char *)); 39. #endif 40. void FDECL((*win_print_glyph), (winid,XCHAR_P,XCHAR_P,int)); 41. void FDECL((*win_raw_print), (const char *)); 42. void FDECL((*win_raw_print_bold), (const char *)); 43. int NDECL((*win_nhgetch)); 44. int FDECL((*win_nh_poskey), (int *, int *, int *)); 45. void NDECL((*win_nhbell)); 46. int NDECL((*win_doprev_message)); 47. char FDECL((*win_yn_function), (const char *, const char *, CHAR_P)); 48. void FDECL((*win_getlin), (const char *,char *)); 49. int NDECL((*win_get_ext_cmd)); 50. void FDECL((*win_number_pad), (int)); 51. void NDECL((*win_delay_output)); 52. #ifdef CHANGE_COLOR 53. void FDECL((*win_change_color), (int,long,int)); 54. #ifdef MAC 55. void FDECL((*win_change_background), (int)); 56. short FDECL((*win_set_font_name), (winid, char *)); 57. #endif 58. char * NDECL((*win_get_color_string)); 59. #endif 60. 61. /* other defs that really should go away (they're tty specific) */ 62. void NDECL((*win_start_screen)); 63. void NDECL((*win_end_screen)); 64. 65. void FDECL((*win_outrip), (winid,int)); 66. void FDECL((*win_preference_update), (const char *)); 67. }; 68. 69. extern NEARDATA struct window_procs windowprocs; 70. 71. /* 72. * If you wish to only support one window system and not use procedure 73. * pointers, add the appropriate #ifdef below. 74. */ 75. 76. #define init_nhwindows (*windowprocs.win_init_nhwindows) 77. #define player_selection (*windowprocs.win_player_selection) 78. #define askname (*windowprocs.win_askname) 79. #define get_nh_event (*windowprocs.win_get_nh_event) 80. #define exit_nhwindows (*windowprocs.win_exit_nhwindows) 81. #define suspend_nhwindows (*windowprocs.win_suspend_nhwindows) 82. #define resume_nhwindows (*windowprocs.win_resume_nhwindows) 83. #define create_nhwindow (*windowprocs.win_create_nhwindow) 84. #define clear_nhwindow (*windowprocs.win_clear_nhwindow) 85. #define display_nhwindow (*windowprocs.win_display_nhwindow) 86. #define destroy_nhwindow (*windowprocs.win_destroy_nhwindow) 87. #define curs (*windowprocs.win_curs) 88. #define putstr (*windowprocs.win_putstr) 89. #define display_file (*windowprocs.win_display_file) 90. #define start_menu (*windowprocs.win_start_menu) 91. #define add_menu (*windowprocs.win_add_menu) 92. #define end_menu (*windowprocs.win_end_menu) 93. #define select_menu (*windowprocs.win_select_menu) 94. #define message_menu (*windowprocs.win_message_menu) 95. #define update_inventory (*windowprocs.win_update_inventory) 96. #define mark_synch (*windowprocs.win_mark_synch) 97. #define wait_synch (*windowprocs.win_wait_synch) 98. #ifdef CLIPPING 99. #define cliparound (*windowprocs.win_cliparound) 100. #endif 101. #ifdef POSITIONBAR 102. #define update_positionbar (*windowprocs.win_update_positionbar) 103. #endif 104. #define print_glyph (*windowprocs.win_print_glyph) 105. #define raw_print (*windowprocs.win_raw_print) 106. #define raw_print_bold (*windowprocs.win_raw_print_bold) 107. #define nhgetch (*windowprocs.win_nhgetch) 108. #define nh_poskey (*windowprocs.win_nh_poskey) 109. #define nhbell (*windowprocs.win_nhbell) 110. #define nh_doprev_message (*windowprocs.win_doprev_message) 111. #define yn_function (*windowprocs.win_yn_function) 112. #define getlin (*windowprocs.win_getlin) 113. #define get_ext_cmd (*windowprocs.win_get_ext_cmd) 114. #define number_pad (*windowprocs.win_number_pad) 115. #define delay_output (*windowprocs.win_delay_output) 116. #ifdef CHANGE_COLOR 117. #define change_color (*windowprocs.win_change_color) 118. #ifdef MAC 119. #define change_background (*windowprocs.win_change_background) 120. #define set_font_name (*windowprocs.win_set_font_name) 121. #endif 122. #define get_color_string (*windowprocs.win_get_color_string) 123. #endif 124. 125. /* other defs that really should go away (they're tty specific) */ 126. #define start_screen (*windowprocs.win_start_screen) 127. #define end_screen (*windowprocs.win_end_screen) 128. 129. #define outrip (*windowprocs.win_outrip) 130. #define preference_update (*windowprocs.win_preference_update) 131. 132. /* 133. * WINCAP 134. * Window port preference capability bits. 135. * Some day this might be better in its own wincap.h file. 136. */ 137. #define WC_COLOR 0x01L /* 01 Port can display things in color */ 138. #define WC_HILITE_PET 0x02L /* 02 supports hilite pet */ 139. #define WC_ASCII_MAP 0x04L /* 03 supports an ascii map */ 140. #define WC_TILED_MAP 0x08L /* 04 supports a tiled map */ 141. #define WC_PRELOAD_TILES 0x10L /* 05 supports pre-loading tiles */ 142. #define WC_TILE_WIDTH 0x20L /* 06 prefer this width of tile */ 143. #define WC_TILE_HEIGHT 0x40L /* 07 prefer this height of tile */ 144. #define WC_TILE_FILE 0x80L /* 08 alternative tile file name */ 145. #define WC_INVERSE 0x100L /* 09 Port supports inverse video */ 146. #define WC_ALIGN_MESSAGE 0x200L /* 10 supports message alignmt top|b|l|r */ 147. #define WC_ALIGN_STATUS 0x400L /* 11 supports status alignmt top|b|l|r */ 148. #define WC_VARY_MSGCOUNT 0x800L /* 12 supports varying message window */ 149. #define WC_FONT_MAP 0x1000L /* 13 supports specification of map win font */ 150. #define WC_FONT_MESSAGE 0x2000L /* 14 supports specification of msg win font */ 151. #define WC_FONT_STATUS 0x4000L /* 15 supports specification of sts win font */ 152. #define WC_FONT_MENU 0x8000L /* 16 supports specification of mnu win font */ 153. #define WC_FONT_TEXT 0x10000L /* 17 supports specification of txt win font */ 154. #define WC_FONTSIZ_MAP 0x20000L /* 18 supports specification of map win font */ 155. #define WC_FONTSIZ_MESSAGE 0x40000L /* 19 supports specification of msg win font */ 156. #define WC_FONTSIZ_STATUS 0x80000L /* 20 supports specification of sts win font */ 157. #define WC_FONTSIZ_MENU 0x100000L /* 21 supports specification of mnu win font */ 158. #define WC_FONTSIZ_TEXT 0x200000L /* 22 supports specification of txt win font */ 159. #define WC_SCROLL_MARGIN 0x400000L /* 23 supports setting scroll margin for map */ 160. #define WC_SPLASH_SCREEN 0x800000L /* 24 supports setting scroll margin for map */ 161. #define WC_POPUP_DIALOG 0x1000000L /* 25 supports queries in pop dialogs */ 162. #define WC_LARGE_FONT 0x2000000L /* 26 Port supports large font */ 163. #define WC_EIGHT_BIT_IN 0x4000000L /* 27 8-bit character input */ 164. #define WC_PERM_INVENT 0x8000000L /* 28 8-bit character input */ 165. #define WC_MAP_MODE 0x10000000L /* 29 map_mode option */ 166. #define WC_WINDOWCOLORS 0x20000000L /* 30 background color for message window */ 167. #define WC_PLAYER_SELECTION 0x40000000L /* 31 background color for message window */ 168. /* 1 free bit */ 169. 170. #define ALIGN_LEFT 1 171. #define ALIGN_RIGHT 2 172. #define ALIGN_TOP 3 173. #define ALIGN_BOTTOM 4 174. 175. /* player_selection */ 176. #define VIA_DIALOG 0 177. #define VIA_PROMPTS 1 178. 179. /* map_mode settings - deprecated */ 180. #define MAP_MODE_TILES 0 181. #define MAP_MODE_ASCII4x6 1 182. #define MAP_MODE_ASCII6x8 2 183. #define MAP_MODE_ASCII8x8 3 184. #define MAP_MODE_ASCII16x8 4 185. #define MAP_MODE_ASCII7x12 5 186. #define MAP_MODE_ASCII8x12 6 187. #define MAP_MODE_ASCII16x12 7 188. #define MAP_MODE_ASCII12x16 8 189. #define MAP_MODE_ASCII10x18 9 190. #define MAP_MODE_ASCII_FIT_TO_SCREEN 10 191. #define MAP_MODE_TILES_FIT_TO_SCREEN 11 192. 193. #if 0 194. #define WC_SND_SOUND 0x01L /* 01 Port has some sound capabilities */ 195. #define WC_SND_SPEAKER 0x02L /* 02 Sound supported via built-in speaker */ 196. #define WC_SND_STEREO 0x04L /* 03 Stereo sound supported */ 197. #define WC_SND_RAW 0x08L /* 04 Raw sound supported */ 198. #define WC_SND_WAVE 0x10L /* 05 Wave support */ 199. #define WC_SND_MIDI 0x20L /* 06 Midi support */ 200. /* 26 free bits */ 201. #endif 202. 203. struct wc_Opt { 204. char *wc_name; 205. unsigned long wc_bit; 206. }; 207. 208. #endif /* WINPROCS_H */ winprocs.h